package com.chao.base.io.fileio;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * @author : Rookie
 * @description : 阻塞IO是Java中最基本的IO模型，它的特点是在进行IO操作时，程序会一直等待IO操作完成后再继续执行下一步操作。
 * * 在Java中，阻塞IO主要是通过InputStream和OutputStream来实现的。
 * @date : 2023/6/13
 */
public class BioDemo {

    /**
     * 读取文件内容
     */
    public static void read() {
        try {
            InputStream is = BioDemo.class.getClassLoader().getResourceAsStream("test.txt");
            if (is != null) {
                byte[] buffer = new byte[1024];
                int len = 0;
                while ((len = is.read(buffer)) != -1) {
                    System.out.println(new String(buffer, 0, len));
                }
                is.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void write() {
        try {
            FileOutputStream fos = new FileOutputStream("classpath:test.txt");
            String content = "Hello, World!";
            fos.write(content.getBytes());
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        read();
//        write();
    }
}
